<?php



class BoletoBancario
{
	var $numero;
	var $prazo;
	
	function BoletoBancario() {
		$numero	= rand(1000000000,9999999999) . rand(1000000000,9999999999) . rand(1000000000,9999999999) . rand(1000000000,9999999999) . rand(1000000000,9999999999);
		
		$connection	= Modelo::conectaBD();
		
		$strQuery 	= "SELECT codigoBarras FROM boletos WHERE codigoBarras='" . $numero . "';";
		$resultSet	= Modelo::query($strQuery, $connection);
		
		while ($resultado = mysql_fetch_array($resultSet)) {
			$numero	= rand(1000000000,9999999999) . rand(1000000000,9999999999) . rand(1000000000,9999999999) . rand(1000000000,9999999999) . rand(1000000000,9999999999);
			$strQuery 	= "SELECT codigoBarras FROM boletos WHERE codigoBarras='" . $numero . "';";
			$resultSet	= Modelo::query($strQuery, $connection);
		}
		
		Modelo::desconectaBD($connection);
		
		$this->setNumero($numero);
		$this->setPrazo(date('Y-m-d',time() + 5 * 24 * 60 * 60));
	}
	
	
    /**
     * Returns $numero.
     * @see BoletoBancario::$numero
     */
    public function getNumero()
    {
        return $this->numero;
    }
    
    /**
     * Sets $numero.
     * @param object $numero
     * @see BoletoBancario::$numero
     */
    public function setNumero($numero)
    {
        $this->numero = $numero;
    }
    
    /**
     * Returns $prazo.
     * @see BoletoBancario::$prazo
     */
    public function getPrazo()
    {
        return $this->prazo;
    }
    
    /**
     * Sets $prazo.
     * @param object $prazo
     * @see BoletoBancario::$prazo
     */
    public function setPrazo($prazo)
    {
        $this->prazo = $prazo;
    }
	
	static function verificaBoleto ($codigoBarras, $idCliente) {
		if (is_numeric($codigoBarras) && strlen($codigoBarras) == 50) {
			$strQuery 		= "SELECT * FROM boletos WHERE codigoBarras='" . $codigoBarras . "';";
			
			$connection	= Modelo::conectaBD();
			$resultSet	= Modelo::query($strQuery, $connection);
			Modelo::desconectaBD($connection);
			
			if ($resultado = mysql_fetch_array($resultSet)) {
				$idPedido 		= $resultado['idPedido'];
				$prazoValidade 	= $resultado['prazoValidade'];
				
				$strQuery 		= "SELECT * FROM pedidos, boletos WHERE pedidos.idPedido=" . $idPedido . " AND pedidos.idCliente=" . $idCliente . " AND boletos.codigoBarras='" . $codigoBarras . "' AND pedidos.idPedido = boletos.idPedido;";
				
				$connection	= Modelo::conectaBD();
				$resultSet	= Modelo::query($strQuery, $connection);
				Modelo::desconectaBD($connection);
				
				if ($resultado = mysql_fetch_array($resultSet)) {
					$informacoesBoleto 	= array();
					
					$informacoesBoleto['numeroCodigo']	= $codigoBarras;
					$informacoesBoleto['codigoBarras']	= BoletoBancario::converteCodigo($codigoBarras);
					$informacoesBoleto['prazoValidade']	= $prazoValidade;
					$informacoesBoleto['valorTotal']	= $resultado['total'];
					$informacoesBoleto['numeroPedido']	= $resultado['numeroPedido'];
					$informacoesBoleto['dataPedido']	= $resultado['data'];
					
					return $informacoesBoleto;
				}
				else {
					return false;
				}
			}
			else {
				return false;
			}
		}
		else {
			return false;
		}
	}
	
	static function converteCodigo($codigoBarras) {
		$convertido 		= array();
		$codigoBarrasGrande	= $codigoBarras;
		
		foreach (str_split($codigoBarrasGrande) as $chave => $numero) {
			if ($codigoBarrasGrande[$chave] < 5) {
				$convertido[$chave]	= 0;
			}
			else {
				$convertido[$chave] = 1;
			}
		}
		
		return $convertido;
	}

}

?>